const mysql = require('mysql2/promise');

// 数据库连接配置
const dbConfig = {
  host: 'localhost',
  port: 3306,
  user: 'root', // 默认用户名，实际应根据你的配置修改
  password: 'a562487913',
  database: 'greenhouse',
  connectionLimit: 10,
  waitForConnections: true,
  queueLimit: 0
};

// 创建连接池
const pool = mysql.createPool(dbConfig);

// 登录API处理函数
async function handleLogin(req, res) {
  const { username, password } = req.body;
  
  if (!username || !password) {
    return res.status(400).json({ success: false, message: '用户名和密码不能为空' });
  }
  
  let connection;
  
  try {
    // 从连接池获取连接
    connection = await pool.getConnection();
    
    // 查询用户信息
    const [rows] = await connection.execute(
      'SELECT id, username, password FROM users WHERE username = ?',
      [username]
    );
    
    if (rows.length === 0) {
      return res.status(401).json({ success: false, message: '用户名不存在' });
    }
    
    const user = rows[0];
    
    // 验证密码（实际应用中应该使用加密方式）
    if (user.password !== password) {
      return res.status(401).json({ success: false, message: '密码错误' });
    }
    
    // 登录成功
    res.json({ 
      success: true, 
      message: '登录成功', 
      user: { 
        id: user.id,
        username: user.username 
      } 
    });
    
  } catch (error) {
    console.error('数据库错误:', error);
    res.status(500).json({ success: false, message: '服务器内部错误' });
  } finally {
    // 释放连接回连接池
    if (connection) {
      connection.release();
    }
  }
}

// 检查数据库连接
async function checkDatabaseConnection() {
  try {
    const connection = await pool.getConnection();
    console.log('数据库连接成功');
    connection.release();
    return true;
  } catch (error) {
    console.error('数据库连接失败:', error);
    return false;
  }
}

// 初始化时检查数据库连接
checkDatabaseConnection();

module.exports = handleLogin;